Skip to content

Conversation

@MartinCupela
Copy link
Contributor

@MartinCupela MartinCupela commented Nov 4, 2025

🎯 Goal

Closes REACT-597

This PR is introducing useAudioPlayer hook to SDK components that replaces useAudioController hook. All the audio playback is centralized using useAudioPlayer. The original useAudioController hook has been deprecated but still exported. Should be removed with the next major release.

For proper cleanup component WithAudioPlayback has been introduced. It removes all the subscriptions and audio elements when unmounted. It is rendered within the Channel component. That means that upon navigation to another channel, the audio is stopped, event listeners removed, state subscriptions unsubscribed and audio elements are removed from the pool to allow them to be garbage collected. It is possible to play audios in the following modes:

  1. single-playback - can play single audio at a time. If another audio is requested to be played, the currently playing audio is stopped. A single <audio/> element is shared among all the players. This is the default mode.
  2. concurrent-playback - can play multiple audios at the same time. Enabled by passing allowConcurrentAudioPlayback prop to Channel or in general by rendering <WithAudioPlayback allowConcurrentPlayback>{children}</<WithAudioPlayback allowConcurrentPlayback>

The integrators have available the following utilities:

useAudioPlayer hook

const audioPlayer = useAudioPlayer({
    mimeType: mime_type,
    requester:
      message?.id &&
      `${threadList ? (message.parent_id ?? message.id) : ''}${message.id}`,
    src: asset_url,
  });

const { isPlaying, progress } =
    useStateStore(audioPlayer?.state, audioPlayerStateSelector) ?? {};

<PlayButton isPlaying={!!isPlaying} onClick={audioPlayer.togglePlay} />
<ProgressBar onClick={audioPlayer.seek} progress={progress ?? 0} />

WithAudioPlayback

<WithAudioPlayback>
  {children}
</WithAudioPlayback>

useActiveAudioPlayer hook (relevant when allowConcurrentPlayback === false)
Useful for central audio player widget that shows reproduction of the active audio player:

const TopLevelComponent = () => {
  // the allowConcurrentPlayback has to be disabled (default)
  return (
    <WithAudioPlayback>
      {children}
    </WithAudioPlayback>
  );
};

const ComponentStartsPlayback = () => {
  const { message, threadList } = useMessageContext() ?? {};

  const audioPlayer = useAudioPlayer({
    durationSeconds: duration ?? 0,
    fileSize: file_size,
    mimeType: mime_type,
    playbackRates,
    requester:
      message?.id &&
      `${threadList ? (message.parent_id ?? message.id) : ''}${message.id}`,
    src: asset_url,
    title,
    waveformData: waveform_data,
  });

  if (!audioPlayer) return null;

  return <PlayButton isPlaying={!!isPlaying} onClick={audioPlayer.togglePlay} />
}

const ChildComponent = () => {
  const activePlayer = useActiveAudioPlayer();

 return activePlayer ? <GlobalAudioWidget audioPlayer={audioPlayer}/> : null;
}

🛠 Implementation details

I had to introduce message context dependency to attachment widgets Audio, Card, VoiceRecordingPlayer in order to be able to provide separate audio resource to each widget even though the widget request playback of the same asset URL.

The component props have not been changed.

Out of scope

A BaseAudioPlayer React component that would be just a UI component getting audioPlayer prop and would serve to interact with the audio playback (would be used internally in Audio and VoiceRecording components.

🎨 UI Changes

No changes

Docs

https://github.com/GetStream/docs-content/pull/750

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

Size Change: +19.5 kB (+1.65%)

Total Size: 1.2 MB

Filename Size Change
./dist/components/Attachment/Audio.js 1.11 kB +499 B (+81.14%) 🆘
./dist/components/Attachment/Card.js 1.9 kB +391 B (+25.98%) 🚨
./dist/components/Attachment/hooks/useAudioController.js 1.4 kB +28 B (+2.04%)
./dist/components/Attachment/index.js 197 B +8 B (+4.23%)
./dist/components/Attachment/VoiceRecording.js 1.45 kB +509 B (+53.92%) 🆘
./dist/components/Channel/Channel.js 8.53 kB +57 B (+0.67%)
./dist/components/index.js 328 B +11 B (+3.47%)
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js 667 B +106 B (+18.89%) ⚠️
./dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js 905 B +101 B (+12.56%) ⚠️
./dist/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.js 554 B +43 B (+8.41%) 🔍
./dist/index.browser.cjs 279 kB +5.55 kB (+2.03%)
./dist/index.node.cjs 292 kB +5.25 kB (+1.83%)
./dist/components/AudioPlayback/AudioPlayer.js 3.95 kB +3.95 kB (new file) 🆕
./dist/components/AudioPlayback/AudioPlayerPool.js 1.53 kB +1.53 kB (new file) 🆕
./dist/components/AudioPlayback/index.js 100 B +100 B (new file) 🆕
./dist/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.js 393 B +393 B (new file) 🆕
./dist/components/AudioPlayback/plugins/AudioPlayerPlugin.js 31 B +31 B (new file) 🆕
./dist/components/AudioPlayback/plugins/index.js 57 B +57 B (new file) 🆕
./dist/components/AudioPlayback/WithAudioPlayback.js 810 B +810 B (new file) 🆕
./dist/i18n/TranslationBuilder/notifications/browserAudioPlaybackError.js 132 B +132 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
./dist/components/AIStateIndicator/AIStateIndicator.js 367 B
./dist/components/AIStateIndicator/hooks/useAIState.js 524 B
./dist/components/AIStateIndicator/index.js 73 B
./dist/components/Attachment/attachment-sizing.js 1.07 kB
./dist/components/Attachment/Attachment.js 1.12 kB
./dist/components/Attachment/AttachmentActions.js 474 B
./dist/components/Attachment/AttachmentContainer.js 2.06 kB
./dist/components/Attachment/audioSampling.js 1.34 kB
./dist/components/Attachment/components/DownloadButton.js 241 B
./dist/components/Attachment/components/FileSizeIndicator.js 346 B
./dist/components/Attachment/components/index.js 112 B
./dist/components/Attachment/components/PlaybackRateButton.js 190 B
./dist/components/Attachment/components/PlayButton.js 252 B
./dist/components/Attachment/components/ProgressBar.js 278 B
./dist/components/Attachment/components/WaveProgressBar.js 1.4 kB
./dist/components/Attachment/FileAttachment.js 367 B
./dist/components/Attachment/Geolocation.js 875 B
./dist/components/Attachment/icons.js 1.14 kB
./dist/components/Attachment/UnsupportedAttachment.js 307 B
./dist/components/Attachment/utils.js 594 B
./dist/components/Avatar/Avatar.js 621 B
./dist/components/Avatar/ChannelAvatar.js 218 B
./dist/components/Avatar/GroupAvatar.js 351 B
./dist/components/Avatar/index.js 65 B
./dist/components/Channel/channelState.js 938 B
./dist/components/Channel/constants.js 77 B
./dist/components/Channel/hooks/useChannelContainerClasses.js 312 B
./dist/components/Channel/hooks/useCreateChannelStateContext.js 1.22 kB
./dist/components/Channel/hooks/useCreateTypingContext.js 226 B
./dist/components/Channel/hooks/useEditMessageHandler.js 239 B
./dist/components/Channel/hooks/useIsMounted.js 165 B
./dist/components/Channel/hooks/useMentionsHandlers.js 376 B
./dist/components/Channel/index.js 118 B
./dist/components/Channel/utils.js 775 B
./dist/components/ChannelHeader/ChannelHeader.js 740 B
./dist/components/ChannelHeader/icons.js 440 B
./dist/components/ChannelHeader/index.js 53 B
./dist/components/ChannelList/ChannelList.js 2.65 kB
./dist/components/ChannelList/ChannelListMessenger.js 439 B
./dist/components/ChannelList/hooks/index.js 205 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 383 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 385 B
./dist/components/ChannelList/hooks/useChannelListShape.js 2.57 kB
./dist/components/ChannelList/hooks/useChannelMembershipState.js 188 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 314 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 454 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 406 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 244 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 529 B
./dist/components/ChannelList/hooks/useMobileNavigation.js 275 B
./dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js 542 B
./dist/components/ChannelList/hooks/useNotificationMessageNewListener.js 453 B
./dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js 339 B
./dist/components/ChannelList/hooks/usePaginatedChannels.js 1.26 kB
./dist/components/ChannelList/hooks/useSelectedChannelState.js 385 B
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 369 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 1.37 kB
./dist/components/ChannelPreview/ChannelPreview.js 1.06 kB
./dist/components/ChannelPreview/ChannelPreviewActionButtons.js 477 B
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 884 B
./dist/components/ChannelPreview/hooks/index.js 97 B
./dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js 445 B
./dist/components/ChannelPreview/hooks/useIsChannelMuted.js 299 B
./dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js 814 B
./dist/components/ChannelPreview/icons.js 573 B
./dist/components/ChannelPreview/index.js 95 B
./dist/components/ChannelPreview/utils.js 1.24 kB
./dist/components/ChannelSearch/ChannelSearch.js 815 B
./dist/components/ChannelSearch/hooks/useChannelSearch.js 1.7 kB
./dist/components/ChannelSearch/icons.js 684 B
./dist/components/ChannelSearch/index.js 85 B
./dist/components/ChannelSearch/SearchBar.js 1.08 kB
./dist/components/ChannelSearch/SearchInput.js 295 B
./dist/components/ChannelSearch/SearchResults.js 1.29 kB
./dist/components/ChannelSearch/utils.js 72 B
./dist/components/Chat/Chat.js 783 B
./dist/components/Chat/hooks/useChannelsQueryState.js 181 B
./dist/components/Chat/hooks/useChat.js 1.26 kB
./dist/components/Chat/hooks/useCreateChatClient.js 482 B
./dist/components/Chat/hooks/useCreateChatContext.js 557 B
./dist/components/Chat/index.js 71 B
./dist/components/ChatView/ChatView.js 1.33 kB
./dist/components/ChatView/index.js 48 B
./dist/components/DateSeparator/DateSeparator.js 506 B
./dist/components/DateSeparator/index.js 53 B
./dist/components/Dialog/ButtonWithSubmenu.js 1.09 kB
./dist/components/Dialog/DialogAnchor.js 1.01 kB
./dist/components/Dialog/DialogManager.js 1.12 kB
./dist/components/Dialog/DialogMenu.js 212 B
./dist/components/Dialog/DialogPortal.js 738 B
./dist/components/Dialog/FormDialog.js 1.05 kB
./dist/components/Dialog/hooks/index.js 49 B
./dist/components/Dialog/hooks/useDialog.js 676 B
./dist/components/Dialog/hooks/usePopoverPosition.js 988 B
./dist/components/Dialog/index.js 98 B
./dist/components/Dialog/PromptDialog.js 283 B
./dist/components/DragAndDrop/DragAndDropContainer.js 1.11 kB
./dist/components/EmptyStateIndicator/EmptyStateIndicator.js 443 B
./dist/components/EmptyStateIndicator/icons.js 319 B
./dist/components/EmptyStateIndicator/index.js 59 B
./dist/components/EventComponent/EventComponent.js 736 B
./dist/components/EventComponent/index.js 54 B
./dist/components/Form/Dropdown.js 932 B
./dist/components/Form/FieldError.js 171 B
./dist/components/Form/SwitchField.js 481 B
./dist/components/Gallery/BaseImage.js 412 B
./dist/components/Gallery/Gallery.js 1.03 kB
./dist/components/Gallery/Image.js 619 B
./dist/components/Gallery/index.js 70 B
./dist/components/Gallery/ModalGallery.js 676 B
./dist/components/InfiniteScrollPaginator/hooks/useCursorPaginator.js 526 B
./dist/components/InfiniteScrollPaginator/index.js 54 B
./dist/components/InfiniteScrollPaginator/InfiniteScroll.js 1.57 kB
./dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.js 996 B
./dist/components/Loading/index.js 79 B
./dist/components/Loading/LoadingChannel.js 342 B
./dist/components/Loading/LoadingChannels.js 276 B
./dist/components/Loading/LoadingErrorIndicator.js 311 B
./dist/components/Loading/LoadingIndicator.js 641 B
./dist/components/LoadMore/index.js 69 B
./dist/components/LoadMore/LoadMoreButton.js 536 B
./dist/components/LoadMore/LoadMorePaginator.js 444 B
./dist/components/Location/hooks/useLiveLocationSharingManager.js 569 B
./dist/components/Location/index.js 59 B
./dist/components/Location/ShareLocationDialog.js 1.8 kB
./dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js 787 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.js 238 B
./dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js 740 B
./dist/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.js 354 B
./dist/components/MediaRecorder/AudioRecorder/index.js 75 B
./dist/components/MediaRecorder/AudioRecorder/RecordingTimer.js 227 B
./dist/components/MediaRecorder/classes/AmplitudeRecorder.js 1.09 kB
./dist/components/MediaRecorder/classes/BrowserPermission.js 755 B
./dist/components/MediaRecorder/classes/index.js 86 B
./dist/components/MediaRecorder/classes/MediaRecorderController.js 2.66 kB
./dist/components/MediaRecorder/hooks/index.js 31 B
./dist/components/MediaRecorder/hooks/useMediaRecorder.js 736 B
./dist/components/MediaRecorder/index.js 150 B
./dist/components/MediaRecorder/observable/BehaviorSubject.js 286 B
./dist/components/MediaRecorder/observable/index.js 91 B
./dist/components/MediaRecorder/observable/Observable.js 243 B
./dist/components/MediaRecorder/observable/Observer.js 108 B
./dist/components/MediaRecorder/observable/Subject.js 472 B
./dist/components/MediaRecorder/observable/Subscription.js 129 B
./dist/components/MediaRecorder/RecordingPermissionDeniedNotification.js 418 B
./dist/components/MediaRecorder/transcode/audioProcessing.js 677 B
./dist/components/MediaRecorder/transcode/index.js 267 B
./dist/components/MediaRecorder/transcode/wav.js 1.8 kB
./dist/components/Message/FixedHeightMessage.js 1.45 kB
./dist/components/Message/hooks/index.js 165 B
./dist/components/Message/hooks/useActionHandler.js 585 B
./dist/components/Message/hooks/useDeleteHandler.js 404 B
./dist/components/Message/hooks/useEditHandler.js 243 B
./dist/components/Message/hooks/useFlagHandler.js 515 B
./dist/components/Message/hooks/useMarkUnreadHandler.js 501 B
./dist/components/Message/hooks/useMentionsHandler.js 334 B
./dist/components/Message/hooks/useMessageReminder.js 232 B
./dist/components/Message/hooks/useMessageTextStreaming.js 650 B
./dist/components/Message/hooks/useMuteHandler.js 664 B
./dist/components/Message/hooks/useOpenThreadHandler.js 265 B
./dist/components/Message/hooks/usePinHandler.js 647 B
./dist/components/Message/hooks/useReactionHandler.js 1.45 kB
./dist/components/Message/hooks/useReactionsFetcher.js 513 B
./dist/components/Message/hooks/useRetryHandler.js 205 B
./dist/components/Message/hooks/useUserHandler.js 193 B
./dist/components/Message/hooks/useUserRole.js 661 B
./dist/components/Message/icons.js 1.68 kB
./dist/components/Message/index.js 221 B
./dist/components/Message/Message.js 1.98 kB
./dist/components/Message/MessageBlocked.js 379 B
./dist/components/Message/MessageDeleted.js 363 B
./dist/components/Message/MessageEditedTimestamp.js 418 B
./dist/components/Message/MessageErrorText.js 361 B
./dist/components/Message/MessageIsThreadReplyInChannelButtonIndicator.js 894 B
./dist/components/Message/MessageOptions.js 1.02 kB
./dist/components/Message/MessageRepliesCountButton.js 466 B
./dist/components/Message/MessageSimple.js 2.29 kB
./dist/components/Message/MessageStatus.js 1.21 kB
./dist/components/Message/MessageText.js 868 B
./dist/components/Message/MessageTimestamp.js 281 B
./dist/components/Message/QuotedMessage.js 964 B
./dist/components/Message/ReminderNotification.js 544 B
./dist/components/Message/renderText/componentRenderers/Anchor.js 297 B
./dist/components/Message/renderText/componentRenderers/Emoji.js 151 B
./dist/components/Message/renderText/componentRenderers/index.js 66 B
./dist/components/Message/renderText/componentRenderers/Mention.js 174 B
./dist/components/Message/renderText/index.js 135 B
./dist/components/Message/renderText/regex.js 378 B
./dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js 241 B
./dist/components/Message/renderText/rehypePlugins/index.js 72 B
./dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.js 972 B
./dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js 172 B
./dist/components/Message/renderText/remarkPlugins/imageToLink.js 540 B
./dist/components/Message/renderText/remarkPlugins/index.js 127 B
./dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js 871 B
./dist/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.js 1.06 kB
./dist/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.js 272 B
./dist/components/Message/renderText/renderText.js 1.84 kB
./dist/components/Message/renderText/types.js 31 B
./dist/components/Message/StreamedMessageText.js 309 B
./dist/components/Message/Timestamp.js 435 B
./dist/components/Message/types.js 31 B
./dist/components/Message/utils.js 3.05 kB
./dist/components/MessageActions/CustomMessageActionsList.js 333 B
./dist/components/MessageActions/index.js 77 B
./dist/components/MessageActions/MessageActions.js 1.24 kB
./dist/components/MessageActions/MessageActionsBox.js 1.23 kB
./dist/components/MessageActions/RemindMeSubmenu.js 552 B
./dist/components/MessageBounce/index.js 70 B
./dist/components/MessageBounce/MessageBounceModal.js 267 B
./dist/components/MessageBounce/MessageBouncePrompt.js 453 B
./dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js 854 B
./dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js 731 B
./dist/components/MessageInput/AttachmentPreviewList/GeolocationPreview.js 545 B
./dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js 729 B
./dist/components/MessageInput/AttachmentPreviewList/index.js 61 B
./dist/components/MessageInput/AttachmentPreviewList/types.js 31 B
./dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js 731 B
./dist/components/MessageInput/AttachmentSelector.js 2.16 kB
./dist/components/MessageInput/CooldownTimer.js 230 B
./dist/components/MessageInput/EditMessageForm.js 781 B
./dist/components/MessageInput/hooks/index.js 146 B
./dist/components/MessageInput/hooks/useAttachmentManagerState.js 305 B
./dist/components/MessageInput/hooks/useAttachmentsForPreview.js 287 B
./dist/components/MessageInput/hooks/useCanCreatePoll.js 208 B
./dist/components/MessageInput/hooks/useCooldownTimer.js 640 B
./dist/components/MessageInput/hooks/useCreateMessageInputContext.js 474 B
./dist/components/MessageInput/hooks/useMessageComposer.js 826 B
./dist/components/MessageInput/hooks/useMessageComposerHasSendableData.js 196 B
./dist/components/MessageInput/hooks/useMessageInputControls.js 311 B
./dist/components/MessageInput/hooks/usePasteHandler.js 605 B
./dist/components/MessageInput/hooks/useSubmitHandler.js 1.03 kB
./dist/components/MessageInput/hooks/useTextareaRef.js 195 B
./dist/components/MessageInput/hooks/useTimer.js 265 B
./dist/components/MessageInput/hooks/utils.js 256 B
./dist/components/MessageInput/icons.js 2.42 kB
./dist/components/MessageInput/index.js 191 B
./dist/components/MessageInput/LinkPreviewList.js 829 B
./dist/components/MessageInput/MessageInput.js 856 B
./dist/components/MessageInput/MessageInputFlat.js 1.64 kB
./dist/components/MessageInput/QuotedMessagePreview.js 916 B
./dist/components/MessageInput/SendButton.js 287 B
./dist/components/MessageInput/SendToChannelCheckbox.js 493 B
./dist/components/MessageInput/StopAIGenerationButton.js 261 B
./dist/components/MessageInput/WithDragAndDropUpload.js 1.5 kB
./dist/components/MessageList/ConnectionStatus.js 425 B
./dist/components/MessageList/CustomNotification.js 289 B
./dist/components/MessageList/GiphyPreviewMessage.js 193 B
./dist/components/MessageList/hooks/index.js 183 B
./dist/components/MessageList/hooks/MessageList/index.js 128 B
./dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js 627 B
./dist/components/MessageList/hooks/MessageList/useMessageListElements.js 590 B
./dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js 873 B
./dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js 797 B
./dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js 993 B
./dist/components/MessageList/hooks/useLastDeliveredData.js 477 B
./dist/components/MessageList/hooks/useLastOwnMessage.js 265 B
./dist/components/MessageList/hooks/useLastReadData.js 325 B
./dist/components/MessageList/hooks/useMarkRead.js 1.1 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/index.js 158 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js 355 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js 326 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.js 615 B
./dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js 1.3 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js 425 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js 387 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js 656 B
./dist/components/MessageList/icons.js 591 B
./dist/components/MessageList/index.js 201 B
./dist/components/MessageList/MessageList.js 2.82 kB
./dist/components/MessageList/MessageListMainPanel.js 197 B
./dist/components/MessageList/MessageListNotifications.js 528 B
./dist/components/MessageList/MessageNotification.js 268 B
./dist/components/MessageList/renderMessages.js 979 B
./dist/components/MessageList/ScrollToBottomButton.js 970 B
./dist/components/MessageList/UnreadMessagesNotification.js 396 B
./dist/components/MessageList/UnreadMessagesSeparator.js 307 B
./dist/components/MessageList/utils.js 2.75 kB
./dist/components/MessageList/VirtualizedMessageList.js 3.94 kB
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.94 kB
./dist/components/Modal/GlobalModal.js 845 B
./dist/components/Modal/icons.js 431 B
./dist/components/Modal/index.js 56 B
./dist/components/Modal/Modal.js 689 B
./dist/components/Modal/ModalHeader.js 243 B
./dist/components/Notifications/hooks/index.js 56 B
./dist/components/Notifications/hooks/useNotifications.js 196 B
./dist/components/Notifications/index.js 45 B
./dist/components/Poll/constants.js 76 B
./dist/components/Poll/hooks/index.js 77 B
./dist/components/Poll/hooks/useManagePollVotesRealtime.js 637 B
./dist/components/Poll/hooks/usePollAnswerPagination.js 515 B
./dist/components/Poll/hooks/usePollOptionVotesPagination.js 520 B
./dist/components/Poll/index.js 127 B
./dist/components/Poll/Poll.js 243 B
./dist/components/Poll/PollActions/AddCommentForm.js 647 B
./dist/components/Poll/PollActions/EndPollDialog.js 395 B
./dist/components/Poll/PollActions/index.js 124 B
./dist/components/Poll/PollActions/PollAction.js 306 B
./dist/components/Poll/PollActions/PollActions.js 1.2 kB
./dist/components/Poll/PollActions/PollAnswerList.js 721 B
./dist/components/Poll/PollActions/PollOptionsFullList.js 382 B
./dist/components/Poll/PollActions/PollResults/index.js 51 B
./dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js 485 B
./dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.js 527 B
./dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js 473 B
./dist/components/Poll/PollActions/PollResults/PollResults.js 698 B
./dist/components/Poll/PollActions/SuggestPollOptionForm.js 718 B
./dist/components/Poll/PollContent.js 415 B
./dist/components/Poll/PollCreationDialog/index.js 58 B
./dist/components/Poll/PollCreationDialog/MultipleAnswersField.js 795 B
./dist/components/Poll/PollCreationDialog/NameField.js 563 B
./dist/components/Poll/PollCreationDialog/OptionFieldSet.js 930 B
./dist/components/Poll/PollCreationDialog/PollCreationDialog.js 782 B
./dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js 441 B
./dist/components/Poll/PollCreationDialog/types.js 31 B
./dist/components/Poll/PollHeader.js 526 B
./dist/components/Poll/PollOptionList.js 429 B
./dist/components/Poll/PollOptionSelector.js 1.18 kB
./dist/components/Poll/PollVote.js 691 B
./dist/components/Poll/QuotedPoll.js 340 B
./dist/components/Portal/Portal.js 246 B
./dist/components/ReactFileUtilities/FileIcon/FileIcon.js 362 B
./dist/components/ReactFileUtilities/FileIcon/FileIconSet.js 5.26 kB
./dist/components/ReactFileUtilities/FileIcon/iconMap.js 527 B
./dist/components/ReactFileUtilities/FileIcon/index.js 53 B
./dist/components/ReactFileUtilities/FileIcon/mimeTypes.js 833 B
./dist/components/ReactFileUtilities/index.js 94 B
./dist/components/ReactFileUtilities/LoadingIndicator.js 257 B
./dist/components/ReactFileUtilities/types.js 31 B
./dist/components/ReactFileUtilities/UploadButton.js 811 B
./dist/components/ReactFileUtilities/utils.js 1.17 kB
./dist/components/Reactions/hooks/useFetchReactions.js 413 B
./dist/components/Reactions/hooks/useProcessReactions.js 960 B
./dist/components/Reactions/index.js 117 B
./dist/components/Reactions/reactionOptions.js 325 B
./dist/components/Reactions/ReactionSelector.js 1.74 kB
./dist/components/Reactions/ReactionSelectorWithButton.js 707 B
./dist/components/Reactions/ReactionsList.js 1.02 kB
./dist/components/Reactions/ReactionsListModal.js 970 B
./dist/components/Reactions/SimpleReactionsList.js 779 B
./dist/components/Reactions/SpriteImage.js 645 B
./dist/components/Reactions/StreamEmoji.js 379 B
./dist/components/Reactions/types.js 31 B
./dist/components/Reactions/utils/utils.js 281 B
./dist/components/SafeAnchor/index.js 74 B
./dist/components/SafeAnchor/SafeAnchor.js 327 B
./dist/components/TextareaComposer/index.js 76 B
./dist/components/TextareaComposer/SuggestionList/CommandItem.js 239 B
./dist/components/TextareaComposer/SuggestionList/EmoticonItem.js 355 B
./dist/components/TextareaComposer/SuggestionList/index.js 88 B
./dist/components/TextareaComposer/SuggestionList/SuggestionList.js 950 B
./dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js 580 B
./dist/components/TextareaComposer/SuggestionList/UserItem.js 568 B
./dist/components/TextareaComposer/TextareaComposer.js 2.5 kB
./dist/components/Thread/icons.js 352 B
./dist/components/Thread/index.js 98 B
./dist/components/Thread/LegacyThreadContext.js 137 B
./dist/components/Thread/Thread.js 1.52 kB
./dist/components/Thread/ThreadHead.js 278 B
./dist/components/Thread/ThreadHeader.js 429 B
./dist/components/Thread/ThreadStart.js 262 B
./dist/components/Threads/hooks/useThreadManagerState.js 168 B
./dist/components/Threads/hooks/useThreadState.js 250 B
./dist/components/Threads/icons.js 850 B
./dist/components/Threads/index.js 61 B
./dist/components/Threads/ThreadContext.js 219 B
./dist/components/Threads/ThreadList/index.js 64 B
./dist/components/Threads/ThreadList/ThreadList.js 716 B
./dist/components/Threads/ThreadList/ThreadListEmptyPlaceholder.js 212 B
./dist/components/Threads/ThreadList/ThreadListItem.js 564 B
./dist/components/Threads/ThreadList/ThreadListItemUI.js 1.33 kB
./dist/components/Threads/ThreadList/ThreadListLoadingIndicator.js 347 B
./dist/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.js 361 B
./dist/components/Threads/UnreadCountBadge.js 222 B
./dist/components/Tooltip/hooks/index.js 61 B
./dist/components/Tooltip/hooks/useEnterLeaveHandlers.js 234 B
./dist/components/Tooltip/index.js 47 B
./dist/components/Tooltip/Tooltip.js 439 B
./dist/components/TypingIndicator/index.js 55 B
./dist/components/TypingIndicator/TypingIndicator.js 834 B
./dist/components/UtilityComponents/ErrorBoundary.js 252 B
./dist/components/UtilityComponents/index.js 72 B
./dist/components/UtilityComponents/NullComponent.js 61 B
./dist/components/UtilityComponents/useStableId.js 268 B
./dist/components/Window/index.js 46 B
./dist/components/Window/Window.js 335 B
./dist/constants/limits.js 183 B
./dist/constants/messageTypes.js 105 B
./dist/context/AttachmentSelectorContext.js 199 B
./dist/context/ChannelActionContext.js 550 B
./dist/context/ChannelListContext.js 356 B
./dist/context/ChannelStateContext.js 548 B
./dist/context/ChatContext.js 538 B
./dist/context/ComponentContext.js 466 B
./dist/context/DialogManagerContext.js 1.34 kB
./dist/context/index.js 155 B
./dist/context/MessageBounceContext.js 584 B
./dist/context/MessageContext.js 491 B
./dist/context/MessageInputContext.js 277 B
./dist/context/MessageListContext.js 356 B
./dist/context/PollContext.js 206 B
./dist/context/TranslationContext.js 558 B
./dist/context/TypingContext.js 543 B
./dist/context/utils/getDisplayName.js 83 B
./dist/context/VirtualizedMessageListContext.js 237 B
./dist/context/WithComponents.js 212 B
./dist/css/v2/emoji-mart.css 1.84 kB
./dist/css/v2/emoji-replacement.css 300 B
./dist/css/v2/index.css 39.4 kB
./dist/css/v2/index.layout.css 22.8 kB
./dist/experimental/index.browser.cjs 98.3 kB
./dist/experimental/index.js 66 B
./dist/experimental/index.node.cjs 109 kB
./dist/experimental/MessageActions/defaults.js 1.27 kB
./dist/experimental/MessageActions/hooks/index.js 82 B
./dist/experimental/MessageActions/hooks/useBaseMessageActionSetFilter.js 893 B
./dist/experimental/MessageActions/hooks/useSplitMessageActionSet.js 216 B
./dist/experimental/MessageActions/index.js 72 B
./dist/experimental/MessageActions/MessageActions.js 1.18 kB
./dist/experimental/Search/hooks/index.js 86 B
./dist/experimental/Search/hooks/useSearchFocusedMessage.js 226 B
./dist/experimental/Search/hooks/useSearchQueriesInProgress.js 388 B
./dist/experimental/Search/index.js 83 B
./dist/experimental/Search/Search.js 485 B
./dist/experimental/Search/SearchBar/index.js 49 B
./dist/experimental/Search/SearchBar/SearchBar.js 852 B
./dist/experimental/Search/SearchContext.js 244 B
./dist/experimental/Search/SearchResults/index.js 128 B
./dist/experimental/Search/SearchResults/SearchResultItem.js 1.11 kB
./dist/experimental/Search/SearchResults/SearchResults.js 520 B
./dist/experimental/Search/SearchResults/SearchResultsHeader.js 597 B
./dist/experimental/Search/SearchResults/SearchResultsPresearch.js 213 B
./dist/experimental/Search/SearchResults/SearchSourceResultList.js 563 B
./dist/experimental/Search/SearchResults/SearchSourceResultListFooter.js 426 B
./dist/experimental/Search/SearchResults/SearchSourceResults.js 460 B
./dist/experimental/Search/SearchResults/SearchSourceResultsEmpty.js 215 B
./dist/experimental/Search/SearchResults/SearchSourceResultsHeader.js 73 B
./dist/experimental/Search/SearchResults/SearchSourceResultsLoadingIndicator.js 275 B
./dist/experimental/Search/SearchSourceResultsContext.js 255 B
./dist/i18n/de.json 4.74 kB
./dist/i18n/en.json 3.13 kB
./dist/i18n/es.json 4.7 kB
./dist/i18n/fr.json 4.79 kB
./dist/i18n/hi.json 5.34 kB
./dist/i18n/index.js 171 B
./dist/i18n/it.json 4.7 kB
./dist/i18n/ja.json 5.09 kB
./dist/i18n/ko.json 4.99 kB
./dist/i18n/nl.json 4.57 kB
./dist/i18n/pt.json 4.7 kB
./dist/i18n/ru.json 5.64 kB
./dist/i18n/Streami18n.js 5.58 kB
./dist/i18n/tr.json 4.66 kB
./dist/i18n/TranslationBuilder/index.js 74 B
./dist/i18n/TranslationBuilder/notifications/attachmentUpload.js 419 B
./dist/i18n/TranslationBuilder/notifications/index.js 83 B
./dist/i18n/TranslationBuilder/notifications/pollComposition.js 225 B
./dist/i18n/TranslationBuilder/notifications/pollVoteCountTrespass.js 117 B
./dist/i18n/TranslationBuilder/notifications/types.js 31 B
./dist/i18n/TranslationBuilder/TranslationBuilder.js 792 B
./dist/i18n/translations.js 172 B
./dist/i18n/types.js 31 B
./dist/i18n/utils.js 1.18 kB
./dist/index.js 85 B
./dist/plugins/Emojis/EmojiPicker.js 1.05 kB
./dist/plugins/Emojis/icons.js 436 B
./dist/plugins/Emojis/index.browser.cjs 5.24 kB
./dist/plugins/Emojis/index.js 86 B
./dist/plugins/Emojis/index.node.cjs 5.29 kB
./dist/plugins/Emojis/middleware/index.js 67 B
./dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.js 1.55 kB
./dist/plugins/encoders/mp3.browser.cjs 1.67 kB
./dist/plugins/encoders/mp3.js 780 B
./dist/plugins/encoders/mp3.node.cjs 1.71 kB
./dist/store/hooks/index.js 53 B
./dist/store/hooks/useStateStore.js 600 B
./dist/store/index.js 45 B
./dist/types/defaultDataInterfaces.js 31 B
./dist/types/index.js 31 B
./dist/types/types.js 31 B
./dist/utils/browsers.js 154 B
./dist/utils/deprecationWarning.js 294 B
./dist/utils/findReverse.js 190 B
./dist/utils/getChannel.js 884 B
./dist/utils/getWholeChar.js 415 B
./dist/utils/index.js 65 B
./dist/utils/mergeDeep.js 170 B
./dist/utils/useStableCallback.js 774 B

compressed-size-action

@codecov
Copy link

codecov bot commented Nov 4, 2025

Codecov Report

❌ Patch coverage is 86.32287% with 61 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.06%. Comparing base (e8142da) to head (7118125).
⚠️ Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
src/components/AudioPlayback/AudioPlayer.ts 80.64% 47 Missing and 1 partial ⚠️
src/components/AudioPlayback/AudioPlayerPool.ts 94.80% 4 Missing ⚠️
src/components/AudioPlayback/WithAudioPlayback.tsx 90.62% 3 Missing ⚠️
src/components/Attachment/Card.tsx 85.71% 1 Missing and 1 partial ⚠️
src/components/Attachment/VoiceRecording.tsx 90.00% 0 Missing and 2 partials ⚠️
src/components/Attachment/Audio.tsx 92.85% 0 Missing and 1 partial ⚠️
...Builder/notifications/browserAudioPlaybackError.ts 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2880      +/-   ##
==========================================
- Coverage   81.55%   81.06%   -0.50%     
==========================================
  Files         499      506       +7     
  Lines       10105    10523     +418     
  Branches     2310     2406      +96     
==========================================
+ Hits         8241     8530     +289     
- Misses       1744     1870     +126     
- Partials      120      123       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@MartinCupela MartinCupela force-pushed the feat/central-audio-reproduction-control branch from d432c06 to cf6a67e Compare November 13, 2025 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants